package cn.singno.bob.jpa.base;

import java.io.Serializable;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.NoRepositoryBean;



/**
 * 方法命名说明:
 * And --- 等价于 SQL 中的 and 关键字，比如 findByUsernameAndPassword(String user, Striang pwd)；
	Or --- 等价于 SQL 中的 or 关键字，比如 findByUsernameOrAddress(String user, String addr)；
	Between --- 等价于 SQL 中的 between 关键字，比如 findBySalaryBetween(int max, int min)；
	LessThan --- 等价于 SQL 中的 "<"，比如 findBySalaryLessThan(int max)；
	GreaterThan --- 等价于 SQL 中的">"，比如 findBySalaryGreaterThan(int min)；
	IsNull --- 等价于 SQL 中的 "is null"，比如 findByUsernameIsNull()；
	IsNotNull --- 等价于 SQL 中的 "is not null"，比如 findByUsernameIsNotNull()；
	NotNull --- 与 IsNotNull 等价；
	Like --- 等价于 SQL 中的 "like"，比如 findByUsernameLike(String user)；
	NotLike --- 等价于 SQL 中的 "not like"，比如 findByUsernameNotLike(String user)；
	OrderBy --- 等价于 SQL 中的 "order by"，比如 findByUsernameOrderBySalaryAsc(String user)；
	Not --- 等价于 SQL 中的 "！ ="，比如 findByUsernameNot(String user)；
	In --- 等价于 SQL 中的 "in"，比如 findByUsernameIn(Collection<String> userList) ，方法的参数可以是 Collection 类型，也可以是数组或者不定长参数；
	NotIn --- 等价于 SQL 中的 "not in"，比如 findByUsernameNotIn(Collection<String> userList) ，方法的参数可以是 Collection 类型，也可以是数组或者不定长参数；
 * 
 * 
 * @author 鲍建明
 *
 * @param <T>
 * @param <ID>
 */



/**
 *<p>名称：BaseRepository.java</p>
 * <p>描述：原生SQL提供接口</p>
 * <pre>
 *    开放原生SQL接口
 *    该接口不提供扩展
 * </pre>
 * @author 鲍建明
 * @date 2014年8月11日 下午3:14:54
 * @version 1.0.0
 */
@NoRepositoryBean
public interface BaseRepository<T, ID extends Serializable> extends JpaRepository<T, ID>, JpaSpecificationExecutor<T> {

	
	
	public T update(T entity);
	

	
}
